package com.example.vendingmachine.service;

import com.example.vendingmachine.dto.UserDTO;
import com.example.vendingmachine.dto.UserQuery;
import com.example.vendingmachine.entity.User;
import com.github.pagehelper.PageInfo;

/**
 * 用户服务接口
 */
public interface UserService {
    /**
     * 分页查询用户列表
     *
     * @param query 查询条件
     * @return 分页用户列表
     */
    PageInfo<User> listUsers(UserQuery query);

    /**
     * 根据ID查询用户
     *
     * @param id 用户ID
     * @return 用户信息
     */
    User getUserById(Long id);

    /**
     * 根据用户名查询用户
     *
     * @param username 用户名
     * @return 用户信息
     */
    User getUserByUsername(String username);

    /**
     * 新增用户
     *
     * @param userDTO 用户信息
     * @return 新增的用户ID
     */
    Long createUser(UserDTO userDTO);

    /**
     * 更新用户
     *
     * @param userDTO 用户信息
     */
    void updateUser(UserDTO userDTO);

    /**
     * 删除用户
     *
     * @param id 用户ID
     */
    void deleteUser(Long id);

    /**
     * 更新用户状态
     *
     * @param id 用户ID
     * @param status 状态
     */
    void updateUserStatus(Long id, String status);
} 